﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CapaNegocio;
using Excepciones;

namespace CapaUsuario
{
    public partial class ModificarPremioStock : Form
    {
        private Admin admin;

        public ModificarPremioStock(Admin a)
        {
            admin = a;
            InitializeComponent();
            this.CenterToParent();
            //carga del datagridview
            dataGridView1.DataSource = admin.listar("premio");
        }

        //BOTON CERRAR
        private void button1Salir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        //BOTON CARGAR
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                int nroPremio = (int)dataGridView1.CurrentRow.Cells[0].Value; //fila actual, columna 0
                string desc = (string)dataGridView1.CurrentRow.Cells[1].Value;//columna1
                int puntos = (int)dataGridView1.CurrentRow.Cells[2].Value;//columa2
                int stock = (int)dataGridView1.CurrentRow.Cells[3].Value;//columna3

                textBox1Nro.Text = nroPremio.ToString();
                textBox2Desc.Text = desc;
                textBox3Puntos.Text = puntos.ToString();
                textBox4Stock.Text = stock.ToString();
            }
            catch (FormatException ex)
            {
                MessageBox.Show(ex.Message);
            }
            catch (DataException ex)
            {
                MessageBox.Show(ex.Message);
            }
            catch (OverflowException ex)
            {
                MessageBox.Show(ex.Message);
            }
            //por si selecciona una grilla vacia
            catch (NullReferenceException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        //BOTON ACEPTAR
        private void button2Aceptar_Click(object sender, EventArgs e)
        {
            try
            {
                int nro, stock = 0;
                nro = int.Parse(textBox1Nro.Text);
                if (nro < 1)
                    throw new nroInvalido();
                stock = int.Parse(textBox4Stock.Text);
                if (stock < 1)
                    throw new StockInvalido();
                
                if (admin.modificarPremioStock(nro, stock) == true)
                    MessageBox.Show("El premio ha sido modificado con exito!");
                else
                    MessageBox.Show("ERROR: El premio no ha podido ser modificado");
            }
            catch (FormatException ex)
            {
                MessageBox.Show(ex.Message);
            }
            catch (DataException ex)
            {
                MessageBox.Show(ex.Message);
            }
            catch (OverflowException ex)
            {
                MessageBox.Show(ex.Message);
            }
            catch (nroInvalido ex)
            {
                MessageBox.Show(ex.Message);
            }
            catch (StockInvalido ex)
            {
                MessageBox.Show(ex.Message);
            }
            //por si selecciona una grilla vacia
            catch (NullReferenceException ex)
            {
                MessageBox.Show(ex.Message);
            }

            finally
            {
                //actualizo el datagridview
                dataGridView1.DataSource = admin.listar("premio");
            }
        }


        
    }//fin clase
}//fin namespace
